﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace POVRay {
    [PRBlock("radiosity")]
    public class Radiosity : Block {

        [PRParam("adc_bailout")]
        public float? ADCBailout { get; set; }

        [PRParam("always_sample")]
        public bool? AlwaysSample { get; set; }

        [PRParam("brightness")]
        public float? Brightness { get; set; }

        [PRParam("count")]
        public int? Count { get; set; }

        [PRParam("error_bound")]
        public float? ErrorBound { get; set; }

        [PRParam("gray_threshold")]
        public float? GrayThreshold { get; set; }

        [PRParam("low_error_factor")]
        public float? LowErrorFactor { get; set; }

        [PRParam("max_sample")]
        public float? MaxSample { get; set; }

        [PRParam("media")]
        public bool? Media { get; set; }

        [PRParam("minimum_reuse")]
        public float? MinimumReuse { get; set; }

        [PRParam("nearest_count")]
        public int? NearestCount { get; set; }

        [PRParam("normal")]
        public bool? Normal { get; set; }

        [PRParam("pretrace_end")]
        public float? PretraceEnd { get; set; }

        [PRParam("pretrace_start")]
        public float? PretraceStart { get; set; }

        [PRParam("recursion_limit")]
        public int? RecursionLimit { get; set; }

        [PRParam()]
        public CacheFile CacheFile { get; set; }

        public Radiosity() {
        }

        public override string ToString(int level) {
            return this.POVRayString(level);
        }
    }
}
